import { H3, serve } from "h3";
import { createServer } from 'node:http';
const app = new H3();

// eventHandler 是一个 handler: EventHandler | H3 类型
// EventHandler 是一个函数类型，它会接收一个 H3Event 对象作为参数，用于处理客户端的请求并返回响应。
// H3 则代表另一个 h3 应用实例，这意味着可以将一个 h3 应用嵌套到另一个 h3 应用中。
app.get("/", (event) => {
  event.res.headers.set("Content-Type", "text/plain;charset=UTF-8");
  return "⚡️ Hello, Tadaa!";
});


// serve(app, { port: 3000 });
// 创建HTTP服务器并将所有请求传递给H3实例处理
const serverCustom = createServer(async (req, res) => {
  const response = await app.fetch(req.url, { method: req.method }, /* 可选的上下文 */);
  res.writeHead(response.status, response.headers);
  res.end(await response.text());
});

// 让服务器监听3000端口
serverCustom.listen(3000, () => {
  console.log('Server is listening on port 3000');
});